package util

import (
	"fmt"
	"github.com/davecgh/go-spew/spew"
	"log/slog"
	"rule/data"
	"time"
)

func ProcessRule() {
	// 转化sql 的rule 并且完成解析
	processRule()
	//
	// testRule()
	//
	//go func() {
	//	for i := 0; i < 1000; i++ {
	//		testQueueData()
	//	}
	//}()
}

func processRule() {
	//
	slog.Warn("process_rule_go_file_processRule")
	// 加载 redis的数据
	// 加载 自己的配置文件

	// 数据加载
	ReadRuleFromRedis()
}

func testRule() {
	// 卡一秒
	time.Sleep(1 * time.Second)

	ptids := data.MapPtId.Array()
	fmt.Println("-----------------")
	// 打印出规则 检查 队列
	spew.Dump("测试ptids", ptids)
	spew.Dump("测试glo.QueueMap", data.QueueMap)
}

func testQueueData() {
	// 卡20秒
	time.Sleep(20 * time.Second)

	ptids := data.MapPtId.Array()
	fmt.Println("-----------------")
	// 打印出规则 检查 队列
	spew.Dump("测试数据ptids", ptids)

	// GetQueues
	qs := data.QueueMap.GetQueues()
	spew.Dump("测试数据qs_len", len(qs))
	for _, q := range qs {
		ptid_points := q.DeepArray()
		slog.Warn("单点位数量数量", "ptid", q.GetPtId(), "len", len(ptid_points))
		//fmt.Printf("测试数据ptid_points \n %+v \n", ptid_points)
	}
}
